﻿namespace Iesi.Collections
{
    using System;
    using System.Collections;

    public interface ISet : ICollection, IEnumerable, ICloneable
    {
        bool Add(object o);
        bool AddAll(ICollection c);
        void Clear();
        bool Contains(object o);
        bool ContainsAll(ICollection c);
        ISet ExclusiveOr(ISet a);
        ISet Intersect(ISet a);
        ISet Minus(ISet a);
        bool Remove(object o);
        bool RemoveAll(ICollection c);
        bool RetainAll(ICollection c);
        ISet Union(ISet a);

        bool IsEmpty { get; }
    }
}

